package com.zfsn.okaria
import android.app.Application
import com.alibaba.android.arouter.launcher.ARouter
import com.blankj.utilcode.util.AppUtils
import com.blankj.utilcode.util.ProcessUtils
import com.elvishew.xlog.XLog
import com.zfsn.okaria.logger.CrashHandler
import com.zfsn.okaria.logger.XLogManager

class OkAriaApp : Application(){
    override fun onCreate() {
        super.onCreate()
        initXLog()
        initARoute()
        checkMainProcess()
        initCrashHandler()

    }

    /**
     * 检查是否是主进程
     */
    fun checkMainProcess(){
        if(!ProcessUtils.isMainProcess()) {
            XLog.i("非主进程，！！！ current:${ProcessUtils.getCurrentProcessName()} ")
            return
        }
    }

    /**
     * 初始化ARoute
     */
    fun initARoute(){
        if (AppUtils.isAppDebug()) {
            // 这两行必须写在init之前，否则这些配置在init过程中将无效
            ARouter.openLog();     // 打印日志
            ARouter.openDebug();   // 开启调试模式(如果在InstantRun模式下运行，必须开启调试模式！线上版本需要关闭,否则有安全风险)
        }
        ARouter.init(this); // 尽可能早，推荐在Application中初始化
    }

    /**
     * 初始化XLog
     */
    fun initXLog(){
        XLogManager.getInstance().init()
    }

    /**
     * 初始化CrashHandler
     */
    fun initCrashHandler(){
        CrashHandler.getInstance().init(this)
    }

}